Принцип розділення інтерфейсів (ISP)
📌 Що таке ISP?
Принцип розділення інтерфейсів (Interface Segregation Principle) стверджує, що великі інтерфейси слід розбивати на менші, щоб класи не залежали від методів, які вони не використовують.
🛠 Приклад порушення ISP
У цьому прикладі клас Printer змушений реалізовувати методи, які йому не потрібні.
public interface Machine {
void print();
void scan();
void fax();
}
public class Printer implements Machine {
@Override
public void print() {
System.out.println("Друк документа");
}
@Override
public void scan() {
throw new UnsupportedOperationException("Сканування не підтримується");
}
@Override
public void fax() {
throw new UnsupportedOperationException("Факс не підтримується");
}
}
✅ Виправлення ISP
Ми розбиваємо великий інтерфейс на кілька менших, щоб кожен клас реалізовував лише необхідний функціонал.
public interface Printer {
void print();
}
public interface Scanner {
void scan();
}
public interface Fax {
void fax();
}
public class BasicPrinter implements Printer {
@Override
public void print() {
System.out.println("Друк документа");
}
}
Назад Далі